package gotime

import (
	"strconv"
	"time"
)

const (
	NormalDateTimePattern   = "2006-01-02 15:04:05"
	NormalDateTimeMsPattern = "2006-01-02 15:04:05.000"
	NormalDatePattern       = "2006-01-02"
	NormalTimePattern       = "15:04:05"
)

// NowStrNormal 返回当前时间字符串 : yyyy-MM-dd HH:mm:ss
func NowStrNormal() string {
	return NowStr(NormalDateTimePattern)
}

// NowStrNormalMS 返回当前时间字符串 : yyyy-MM-dd HH:mm:ss.SSS
func NowStrNormalMS() string {
	return NowStr(NormalDateTimeMsPattern)
}

// NowStrNormalDate 返回当前时间字符串 : yyyy-MM-dd
func NowStrNormalDate() string {
	return NowStr(NormalDatePattern)
}

// NowStrNormalTime 返回当前时间字符串 : HH:mm:ss
func NowStrNormalTime() string {
	return NowStr(NormalTimePattern)
}

// NowStr 返回当前时间字符串
func NowStr(pattern string) string {
	return time.Now().Format(pattern)
}

// UnixMillis 返回当前时间戳 : 1736243041928
func UnixMillis() int64 {
	return time.Now().UnixNano() / 1e6
}

// NowMillis 返回当前时间戳 : 1736243041928
func NowMillis() int64 {
	return time.Now().UnixNano() / 1e6
}

// NowMillisStr 返回当前时间戳字符串 : 1736243041928
func NowMillisStr() string {
	return strconv.FormatInt(NowMillis(), 10)
}

// Now 返回当前时间字符串 : yyyy-MM-dd HH:mm:ss
func Now() string {
	return time.Now().Format(NormalDateTimePattern)
}
